/**
 * @author       Richard Davey <rich@photonstorm.com>
 * @copyright    2016 Photon Storm Ltd.
 * @license      {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
 */

/**
 * The Overlap component allows a Game Object to check if it overlaps with the bounds of another Game Object.
 *
 * @class
 */
Phaser.Component.Overlap = function () {};

Phaser.Component.Overlap.prototype = {

    /**
     * Checks to see if the bounds of this Game Object overlaps with the bounds of the given Display Object, 
     * which can be a Sprite, Image, TileSprite or anything that extends those such as Button or provides a `getBounds` method and result.
     *
     * This check ignores the `hitArea` property if set and runs a `getBounds` comparison on both objects to determine the result.
     *
     * Therefore it's relatively expensive to use in large quantities, i.e. with lots of Sprites at a high frequency.
     * It should be fine for low-volume testing where physics isn't required.
     *
     * @method
     * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Button|PIXI.DisplayObject} displayObject - The display object to check against.
     * @return {boolean} True if the bounds of this Game Object intersects at any point with the bounds of the given display object.
     */
    overlap: function (displayObject)
    {
        return Phaser.Rectangle.intersects(this.getBounds(), displayObject.getBounds());
    }

};
